1. Technical Field
The present invention relates to digital communication and more specifically to a two-way handshake circuit and method for communication between processors.
2. Discussion
In a digital circuit, digital port pins are capable of transmitting or receiving digital data but not both. Digital data port pins typically react to changes in voltage or produce changes in voltage. There are only two voltage states in a digital system, a high voltage level or a low voltage level. In such a circuit, a high voltage state has a certain meaning, and the low voltage state has a different meaning. Transferring long strings of high or low voltage pulses between digital circuits and components produces digital messages which are used by devices such as personal computers to do useful work.
In many computer applications, it is necessary for two or more digital devices, such as microprocessors, to communicate with each other. Typically, communication is accomplished by sending data from one microprocessor to another via a set of data communication lines called a bus. For accurate communication, a method of regulating how microprocessors exchange data on these bus lines called handshaking is used. Handshaking between microprocessors is simply defined as one microprocessor telling another microprocessor that it has received a data message and is ready for the next message. Two-way handshaking is defined as a method of bidirectionally regulating data transfer between microprocessors.
Typically, handshaking has been carried out using two or more control lines linking the microprocessors. The control lines are used by the linked microprocessors to regulate the transmission of the data. The control lines regulate data transmission by signaling one microprocessor that the other is ready to receive data. The control lines also tell the receiving microprocessor when the data has been transmitted to the bus and is valid or ready to be received. The two-way handshaking sequence is completed when the data is accepted by the receiving microprocessor and the control lines signal that the other microprocessor is ready to receive data again.
Many two-way handshake circuits utilize tri-state or three-state input/output ports as control lines to coordinate communication between microprocessors. An overview of tri-state input/output ports and their application is presented in U.S. Pat. No. 4,612,638 to Kissel and is hereby expressly and specifically incorporated by reference. Tri-state input/output port pins differ from conventional digital port pins in that the former can be configured as an input or an output at any particular time as determined by a microprocessor program control. This characteristic makes the tri-state input/output port an extremely versatile type of digital port.
When the tri-state input/output port pin is configured as an input, it is at a high impedance and the voltage state applied to the pin is capable of being measured by the microprocessor. When configured as an output, the tri-state port pin is at a low impedance, and its output voltage level is determined by the microprocessor. Tri-state input/output ports are symbolically represented as two superimposed amplifier symbols. One symbol represents the tri-state port's ability to act as an input. The other symbol represents the port's ability to act as an output.
Previous handshake circuits utilize two tri-state input/output control lines per microprocessor to facilitate handshaking. This technique, however, reduces efficient use of the microprocessor's tri-state input/output ports. Additionally, chip selection is limited to the more expensive chips, each containing at least two tri-state control lines.